7
תגובות

עזרה בפריצת קוד JS בסיסי

פתח OrelBeY ,
זה תרגיל...

function checkPass( password )
{
  var count1 = 3, count2 = 5;
  var sumof1 = 0, sumof2 = 0;

  var charlist = "BHFE8";

  for( i = 0; i < password.length; ++i ) { sumof1 += ( password.charCodeAt( i ) * count1 ); count1++; }
  for( i = 0; i < charlist.length; ++i ) { sumof2 += ( charlist.charCodeAt( i ) * count2 ); count2++; }

  (sumof1 == sumof2) ? setTimeout( "location.replace( 'http://www.enigmagroup.org/missions/basics/js/10/index.php?password=" + encodeURI(password) + "' );", 0 ) : alert( "Sorry, but the password was incorrect." );
}

גיליתי מה sumof1 אמור להיות, אבל לא הצלחתי לחשוב על דרך לכתוב קוד שיחשב לי את האותיות של הסיסמה לפי זה. אפשר רמז? (קראתי בפורומים שלהם. לא עזר בכלל.)

7 תשובות

avatar ענה intval ב 25 לינואר 2013 #

תתחיל מלברר מה זה charCodeAt
ואחרי זה תחשוב מה ההבדל בין 2+3 לבין 3+2

avatar ענה OrelBeY ב 25 לינואר 2013 #

את זה אני יודע.
אוי ואבוי. איך פספסתי את זה. D:
אני אנסה להשתמש בזה.
תודה. :-)

avatar ענה OrelBeY ב 25 לינואר 2013 #

לא הצלחתי להיעזר בזה. המונים של המכפלה שונים.
אבל בסופו של דבר כן מצאתי מחרוזת מתאימה. יש המון כאלה. :)
אם למישהו יש רעיון לכתיבת תוכנית שתוכל למצוא את זה בלי לנסות ידנית, אשמח אם תשתפו את זה. ^_^

avatar ענה intval ב 25 לינואר 2013 #

sumof1 / 3 = sumof2 / 5
את sum1 אתה יודע, אם ל sum2 תקרא X זה יהיה בדיוק כמו משוואות מכתה ו'
אתה צריך למצןא רצף של מספרים שהסכום שלהם יהיה X

avatar ענה OrelBeY ב 25 לינואר 2013 #

הבעיה היא שזו משוואה עם מספר לא ידוע של משתנים, נוסף על כך שאני לא יכול לבחור במספרים כמו 8, כי הם מסמנים ישויות מסוימות, וזה לא משהו שאני יכול לכתוב...

avatar ענה intval ב 25 לינואר 2013 #

למה כמה משתנים? זה משנתה אחד. X.
אם sum1 שווה ל 900 אז יוצא לך ש

900 / 3 = X / 5
X = 900 / 3 * 5
X = 1500


ועכשיו נשאר לך למצוא כל רצף מספרים בכל כמות ואורך שאתה רוצה שהסכום שלהם זה 1500
זה יכול להיות מספר אחד שהערך שלו 1500, או 700 + 800 או 1+2+3+1494 או כל דבר אחר שבא לך.

avatar ענה OrelBeY ב 25 לינואר 2013 #

החילוק (3, 5) עולה באחד בכל סיבוב.